#ifndef __UI_H__
#define __UI_H__

#include <list>
#include <string>

struct UserQuery
{
	UserQuery(const std::string& what = "", const std::string& desc = "")
	{
		Query = what;
		Description = desc;
	}

	std::string Query; //free-form query
	std::string Description; //detailed description
	std::string Reply; //user response
};

class UserInterface
{
public:
	virtual ~UserInterface() {}
	virtual bool DoQueries(const std::string& from, const std::list<UserQuery*>& queries) = 0;

	bool DoQuery(const std::string& from, UserQuery *query)
	{
		std::list<UserQuery*> queries;
		queries.push_back(query);
		return DoQueries(from, queries);
	}
};

#endif
